#ifndef _CACHE_H_
#define _CACHE_H_
#include <string>
#include <armadillo>

// 缓存类，用于缓存中间运算结果
class EmCache
{
private:

    // 缓存文件名
    std::string fileName;
    // 缓存标志，1：使用缓存，0：不使用缓存
    bool en_flag;
    // 更新缓存标志，1：刷新缓存，0：不刷新缓存
    bool refreshCache;

public:
    EmCache();
    // EmCache(std::string fileName);
    EmCache(std::string fileName, bool en_flag, bool refreshCache);

    // EmCache(std::string fileName, bool flag);
    ~EmCache();
public:
    bool save(void* data, uint8_t length);
    bool save(arma::mat &data);
    bool load(arma::mat &target_mat);

public:
    void changeCacheFile(std::string fn);
    void enable();
    void disable();
    void en_refresh();
    void dis_refresh();

    std::string get_cacheFile();
    bool is_enable();
    bool is_refresh();
    bool isFileEmpty();

};



#endif // !_CACHE_H_


